<?php
/**
 * Created by PhpStorm.
 * User: guo
 * Date: 2019-01-22
 * Time: 11:39
 */

namespace app\api\validate;


use app\lib\exception\ParameterException;

class OrderPlace extends BaseValidate
{
    protected $oProducts=[
        'product_id'=> 2,
        'count' => 5
    ];
    //多维数组
    protected $rule =[
        'products' =>'checkProducts'
    ];
    protected $singleRule=[
      'product_id' =>'require|isPositiveInteger',
        'count' =>'require|isPositiveInteger'
    ];

    protected function checkProducts($values){
        if (!is_array($values)){
            throw new ParameterException([
                'msg'=>'商品参数不正确'
            ]);
        }
        if (empty($values)){
            throw new ParameterException([
                'msg'=>'商品列表不能为空'
            ]);
        };
        foreach ($values as $value){
            $this->checkProduct($value);
        }
        return true;

    }
    protected function checkProduct($value){
       $validate =new BaseValidate($this->singleRule);
       $result = $validate ->check($value);
       if (!$result){
           throw new ParameterException([
               'msg'=>'商品列表参数错误'
           ]);
       }
    }
}